#ifndef HDCMANAGER_H
#define HDCMANAGER_H
#include <QObject>
#include <QtWidgets>
#include <QDeclarativeView>

#include "../../../PublicHeard/AVClientSDK/HAVClientProtocol.h"
#include "../../../PublicHeard/AVClientSDK/HAVClientInterface.h"
#include "../../../PublicHeard/AVClientSDK/HAVClientUIProtocol.h"
#include "../../../PublicHeard/AVClientSDK/HDomeControlPanelInterface.h"
#include "../../../PublicHeard/AVClientSDK/HLoginInterface.h"
#include "../../../PublicHeard/AVClientSDK/HDomeControlPanelInterface.h"

#include "../include/StdAfx.h"
#include "../include/HGlobalVariable.h"

class HDCManager : public QObject
{
    Q_OBJECT
public:
    HDCManager(QObject *parent = 0);
    ~HDCManager();

    static void			     CallBackResult(DataStructType eType,void *pResultData, void *pThis);
    //static void              installUIProtocolWidget(HUIProtocolSender *uiProtocolSender);
	void                     init(bool bAuto,QStringList lstArgs);
	void                     initRecoveryScenesOpenVideo();
private:
    void                     loadLoginUI(QStringList strLstLoginInfo);
    void                     loadDomeControlPanel();

    void                     dealLoginResult(LoginResult *loginResult);
	void                     dealAppendTreeItem(std::vector<UserDeviceItem> *deviceItem);
    void                     dealWarningInfo(int nDeviceID);

private slots:
    void                     sltDealViewInfo(HTUIProtocol uiProtocol);
	void                     sltAppToQuit();
	void                     sltDealWarningInfo(int nDeviceID);

signals:
	void                     sigDealWarningInfo(int nDeviceID);

private:
    //QHash<QString,QString>   m_hashSettingInfo;
    HLoginInterface          *m_pLoginInterface;
    QDeclarativeView         *m_pdcViewLoginPanel;

    HDomeControlPanelInterface *m_pDCPanelInterface;
    QWidget                  *m_pDomeControlPanel;


   static int                m_nResult;
   static int                m_nLoginResult;
   QHash<QString,QString>    m_hashSetting;
};

#endif
